package _2022.contest.biweekly.biweekly_contest_75;

/**6035.选择建筑的方案数
 * @author： YHSimon
 * @date： 2022-04-02 23:07
 */
public class Solution3 {

    public long numberOfWays2(String s){
        int len=s.length();
        int[] arr_0=new int[len];
        int[] arr_1=new int[len];
        arr_0[0]=s.charAt(0)=='0'?1:0;
        arr_1[0]=s.charAt(1)=='1'?1:0;
        int count_0=arr_0[0];
        int count_1=arr_1[0];
        for(int i=1;i<len;i++){
            arr_0[i]=s.charAt(i)=='0'?++count_0:arr_0[i-1];
            arr_1[i]=s.charAt(i)=='1'?++count_1:arr_1[i-1];
        }
        long res=0;
        for(int i=1;i<len-1;i++){
            if(s.charAt(i)=='1'){
                res+=(long)arr_0[i-1]*(arr_0[len-1]-arr_0[i-1]);
            }else{
                res+=(long)arr_1[i-1]*(arr_1[len-1]-arr_1[i-1]);
            }
        }
        return res;
    }
    //超时
    public long numberOfWays(String s) {
        int len=s.length();
        long res=0;
        for(int i=0;i<len-2;i++){
            if(s.charAt(i)=='0'){
                for(int j=i+1;j<len-1;j++){
                    if(s.charAt(j)=='1'){
                        for(int k=j+1;k<len;k++){
                            if(s.charAt(k)=='0'){
                                res++;
                            }
                        }
                    }
                }
            }else{
                for(int j=i+1;j<len-1;j++){
                    if(s.charAt(j)=='0'){
                        for(int k=j+1;k<len;k++){
                            if(s.charAt(k)=='1'){
                                res++;
                            }
                        }
                    }
                }
            }
        }
        return res;
    }

    public static void main(String[] args) {
        Solution3 s = new Solution3();
        System.out.println(s.numberOfWays2("001101"));
    }
}
